#ifndef CHECKUTILS_H
#define CHECKUTILS_H

#include <QObject>
#include <QDebug>

class CheckUtils : public QObject
{
    Q_OBJECT
public:
    explicit CheckUtils(QObject *parent = nullptr);


    // Checksum
    //
    //	@Desc: CRC16-ARC
    //	@param data 原始数据
    //	@return uint16 校验码 （返回前18位校验和）
    static uint16_t CheckSum(QVector<uint16_t> data);

    static uint16_t CheckSumOne(QVector<uint16_t> data);

    // Checksum
    //
    //	@Desc: CRC16-ARC
    //	@param data 原始数据
    //	@return bool（一帧数据是否符合）
    static bool CRC16(QVector<uint16_t> rawData);

private:
    // table
    //
    //	@Desc: CRC计算查表
    static QVector<uint16_t> table;

};

#endif // CHECKUTILS_H
